<?php

include_once ('com/alibaba/openapi/client/entity/SDKDomain.class.php');
include_once ('com/alibaba/openapi/client/entity/ByteArray.class.php');
include_once ('AlibabaCreateOrderPreviewParam/AlibabaTradeFastAddress.class.php');
include_once ('AlibabaCreateOrderPreviewParam/AlibabaTradeFastCargo.class.php');
include_once ('AlibabaCreateOrderPreviewParam/AlibabaTradeFastInvoice.class.php');
include_once ('AlibabaCreateOrderPreviewParam/AlibabaTradeFastCreateOrderEncryptOutOrderInfo.class.php');

class AlibabaCreateOrderPreviewParam {

        
        /**
    * @return 收货地址信息
    */
        public function getAddressParam() {
        $tempResult = $this->sdkStdResult["addressParam"];
        return $tempResult;
    }
    
    /**
     * 设置收货地址信息     
     * @param AlibabaTradeFastAddress $addressParam     
     * 参数示例：<pre>{"address":"网商路699号","phone": "0517-88990077","mobile": "15251667788","fullName": "张三","postCode": "000000","areaText": "滨江区","townText": "","cityText": "杭州市","provinceText": "浙江省"}</pre>     
     * 此参数必填     */
    public function setAddressParam(AlibabaTradeFastAddress $addressParam) {
        $this->sdkStdResult["addressParam"] = $addressParam;
    }
    
        
        /**
    * @return 商品信息
    */
        public function getCargoParamList() {
        $tempResult = $this->sdkStdResult["cargoParamList"];
        return $tempResult;
    }
    
    /**
     * 设置商品信息     
     * @param array include @see AlibabaTradeFastCargo[] $cargoParamList     
     * 参数示例：<pre>[{"specId": "b266e0726506185beaf205cbae88530d","quantity": 5,"offerId": 554456348334},{"specId": "2ba3d63866a71fbae83909d9b4814f01","quantity": 6,"offerId": 554456348334}]</pre>     
     * 此参数必填     */
    public function setCargoParamList(AlibabaTradeFastCargo $cargoParamList) {
        $this->sdkStdResult["cargoParamList"] = $cargoParamList;
    }
    
        
        /**
    * @return 发票信息
    */
        public function getInvoiceParam() {
        $tempResult = $this->sdkStdResult["invoiceParam"];
        return $tempResult;
    }
    
    /**
     * 设置发票信息     
     * @param AlibabaTradeFastInvoice $invoiceParam     
     * 参数示例：<pre>{"invoiceType":0,"cityText": "杭州市","provinceText": "浙江省","address": "网商路699号","phone": "0517-88990077","mobile": "15251667788","fullName": "张五","postCode": "000000","areaText": "滨江区","companyName": "测试公司","taxpayerIdentifier": "123455"}</pre>     
     * 此参数必填     */
    public function setInvoiceParam(AlibabaTradeFastInvoice $invoiceParam) {
        $this->sdkStdResult["invoiceParam"] = $invoiceParam;
    }
    
        
        /**
    * @return general（创建大市场订单），fenxiao（创建分销订单）,saleproxy流程将校验分销关系,paired(火拼下单),boutiquefenxiao(精选货源分销价下单，采购量1个使用包邮)， boutiquepifa(精选货源批发价下单，采购量大于2使用). flow如果为空的情况，会比价择优预览，并返回最优下单方式flow
    */
        public function getFlow() {
        $tempResult = $this->sdkStdResult["flow"];
        return $tempResult;
    }
    
    /**
     * 设置general（创建大市场订单），fenxiao（创建分销订单）,saleproxy流程将校验分销关系,paired(火拼下单),boutiquefenxiao(精选货源分销价下单，采购量1个使用包邮)， boutiquepifa(精选货源批发价下单，采购量大于2使用). flow如果为空的情况，会比价择优预览，并返回最优下单方式flow     
     * @param String $flow     
     * 参数示例：<pre>general</pre>     
     * 此参数必填     */
    public function setFlow( $flow) {
        $this->sdkStdResult["flow"] = $flow;
    }
    
        
        /**
    * @return 批发团instanceId,从alibaba.pifatuan.product.list获取
    */
        public function getInstanceId() {
        $tempResult = $this->sdkStdResult["instanceId"];
        return $tempResult;
    }
    
    /**
     * 设置批发团instanceId,从alibaba.pifatuan.product.list获取     
     * @param String $instanceId     
     * 参数示例：<pre>4063139_1662080400000</pre>     
     * 此参数必填     */
    public function setInstanceId( $instanceId) {
        $this->sdkStdResult["instanceId"] = $instanceId;
    }
    
        
        /**
    * @return 下游加密订单信息，用于下游打单使用
    */
        public function getEncryptOutOrderInfo() {
        $tempResult = $this->sdkStdResult["encryptOutOrderInfo"];
        return $tempResult;
    }
    
    /**
     * 设置下游加密订单信息，用于下游打单使用     
     * @param AlibabaTradeFastCreateOrderEncryptOutOrderInfo $encryptOutOrderInfo     
     * 参数示例：<pre>{}</pre>     
     * 此参数必填     */
    public function setEncryptOutOrderInfo(AlibabaTradeFastCreateOrderEncryptOutOrderInfo $encryptOutOrderInfo) {
        $this->sdkStdResult["encryptOutOrderInfo"] = $encryptOutOrderInfo;
    }
    
        
        /**
    * @return 分账普通下单采购单id，交易flow为“proxy”
    */
        public function getProxySettleRecordId() {
        $tempResult = $this->sdkStdResult["proxySettleRecordId"];
        return $tempResult;
    }
    
    /**
     * 设置分账普通下单采购单id，交易flow为“proxy”     
     * @param String $proxySettleRecordId     
     * 参数示例：<pre>4051300002</pre>     
     * 此参数必填     */
    public function setProxySettleRecordId( $proxySettleRecordId) {
        $this->sdkStdResult["proxySettleRecordId"] = $proxySettleRecordId;
    }
    
        
        /**
    * @return 库存模式，jit（jit模式）或 cang（仓发模式）,目前只提供给AE使用	
    */
        public function getInventoryMode() {
        $tempResult = $this->sdkStdResult["inventoryMode"];
        return $tempResult;
    }
    
    /**
     * 设置库存模式，jit（jit模式）或 cang（仓发模式）,目前只提供给AE使用	     
     * @param String $inventoryMode     
     * 参数示例：<pre>jit</pre>     
     * 此参数必填     */
    public function setInventoryMode( $inventoryMode) {
        $this->sdkStdResult["inventoryMode"] = $inventoryMode;
    }
    
        
        /**
    * @return 外部订单号	
    */
        public function getOutOrderId() {
        $tempResult = $this->sdkStdResult["outOrderId"];
        return $tempResult;
    }
    
    /**
     * 设置外部订单号	     
     * @param String $outOrderId     
     * 参数示例：<pre>988129883123</pre>     
     * 此参数必填     */
    public function setOutOrderId( $outOrderId) {
        $this->sdkStdResult["outOrderId"] = $outOrderId;
    }
    
        
        /**
    * @return 上门揽收,目前AE供货可用，其他场景暂不开通
    */
        public function getPickupService() {
        $tempResult = $this->sdkStdResult["pickupService"];
        return $tempResult;
    }
    
    /**
     * 设置上门揽收,目前AE供货可用，其他场景暂不开通     
     * @param String $pickupService     
     * 参数示例：<pre>y或n,默认为n</pre>     
     * 此参数必填     */
    public function setPickupService( $pickupService) {
        $this->sdkStdResult["pickupService"] = $pickupService;
    }
    
        
        /**
    * @return 用户选择的官方物流跨境解决方案sourceId
    */
        public function getCrossBorderLogisticsSolutionId() {
        $tempResult = $this->sdkStdResult["crossBorderLogisticsSolutionId"];
        return $tempResult;
    }
    
    /**
     * 设置用户选择的官方物流跨境解决方案sourceId     
     * @param String $crossBorderLogisticsSolutionId     
     * 参数示例：<pre>GLOBAL_CAINIAO_VN_TRANSIT_LAND </pre>     
     * 此参数必填     */
    public function setCrossBorderLogisticsSolutionId( $crossBorderLogisticsSolutionId) {
        $this->sdkStdResult["crossBorderLogisticsSolutionId"] = $crossBorderLogisticsSolutionId;
    }
    
        
        /**
    * @return 是否使用跨境物流解决方案预览，默认为false，当海外地址时，参数不生效。当为港澳台地址时，参数生效
    */
        public function getUseBorderLogisticsSolution() {
        $tempResult = $this->sdkStdResult["useBorderLogisticsSolution"];
        return $tempResult;
    }
    
    /**
     * 设置是否使用跨境物流解决方案预览，默认为false，当海外地址时，参数不生效。当为港澳台地址时，参数生效     
     * @param Boolean $useBorderLogisticsSolution     
     * 参数示例：<pre>true</pre>     
     * 此参数必填     */
    public function setUseBorderLogisticsSolution( $useBorderLogisticsSolution) {
        $this->sdkStdResult["useBorderLogisticsSolution"] = $useBorderLogisticsSolution;
    }
    
        
    private $sdkStdResult=array();
    
    public function getSdkStdResult(){
    	return $this->sdkStdResult;
    }

}
?>